﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SW_SoftBully.Models.ModuloVentas.Vendedores;
using System.Data.SqlClient;
using System.Configuration;
namespace SW_SoftBully.Models.ModuloVentas.Vendedores
{
    public class VendedoresFacade
    {
        public List<VendedoresBean> ListarVendedores(VendedoresBean vendedores)
        {
            try
            {
                List<VendedoresBean> listavendedores = new List<VendedoresBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();
                //string commandString = "SELECT Nombres, Apellidos, Nro_Documento_persona FROM persona WHERE (Estado = 1) AND (Nro_Documento_persona IN (SELECT Nro_Documento_vendedor FROM vendedor))";
                string commandString = this.get_commandString(vendedores);
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                SqlDataReader dataReader = sqlCmd.ExecuteReader();
               
                while (dataReader.Read())
                {
                    VendedoresBean vendedor = new VendedoresBean();
                    vendedor.nombres = Convert.ToString(dataReader["Nombres"]);
                    vendedor.apellidos = Convert.ToString(dataReader["Apellidos"]);
                    vendedor.nro_documento = Convert.ToString(dataReader["Nro_Documento_persona"]);
                    listavendedores.Add(vendedor);
                }
                dataReader.Close();
                sqlCon.Close();
                return listavendedores;
            }
            catch (Exception e)
            {
                String men = e.ToString();
                vendedores.conexion = men;
                return null;
            }
        }

        public string get_commandString(VendedoresBean vendedores) {
            if ((vendedores.nombres != null)&&(String.Equals("",vendedores.nombres.Trim()))) vendedores.nombres = null;
            if ((vendedores.apellidos != null) && (String.Equals("", vendedores.apellidos.Trim()))) vendedores.apellidos = null;

            if ((vendedores.nombres==null) && (vendedores.apellidos==null)) return "SELECT Nombres, Apellidos, Nro_Documento_persona FROM persona WHERE Nro_Documento_persona IN (SELECT Nro_Documento_vendedor FROM vendedor)";
            
            if ((vendedores.nombres != null) && (vendedores.apellidos != null)) return "SELECT Nombres, Apellidos, Nro_Documento_persona FROM persona WHERE ((Apellidos LIKE '%" + vendedores.apellidos + "%') AND ((Nombres LIKE '%" + vendedores.nombres + "%') AND (Estado = 1))) AND (Nro_Documento_persona IN (SELECT Nro_Documento_vendedor FROM vendedor))";
            if ((vendedores.nombres != null) && (vendedores.apellidos==null))  return "SELECT Nombres, Apellidos, Nro_Documento_persona FROM persona WHERE    ((Nombres LIKE '%" + vendedores.nombres + "%') AND (Estado = 1)) AND (Nro_Documento_persona IN (SELECT Nro_Documento_vendedor FROM vendedor))";
            else return "SELECT Nombres, Apellidos, Nro_Documento_persona FROM persona WHERE (Apellidos LIKE '%" + vendedores.apellidos + "%') AND (Estado = 1) AND (Nro_Documento_persona IN(SELECT Nro_Documento_vendedor FROM vendedor))";
            
        }

    }
}